package com.limh.readers.widget

import android.graphics.*
import com.squareup.picasso.Transformation
import retrofit2.http.PATCH

/**
 * Function:
 * author: limh
 * time:2017/8/21
 */
class CircleTransform : Transformation {
    override fun transform(source: Bitmap?): Bitmap {
        val size = Math.min(source!!.width, source.height)

        val x = (source.width - size) / 2
        val y = (source.height - size) / 2

        val squaredBitmap: Bitmap = Bitmap.createBitmap(source, x, y, size, size)
        if (squaredBitmap != source)
            source.recycle()
        val bitmap: Bitmap = Bitmap.createBitmap(size, size, source.config)

        val canvas = Canvas(bitmap)
        val paint = Paint()

        val shader = BitmapShader(squaredBitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)
        paint.setShader(shader)
        paint.isAntiAlias = true
        val r = size / 2f
        canvas.drawCircle(r, r, r, paint)
        squaredBitmap.recycle()
        return bitmap
    }

    override fun key(): String {
        return "circle"
    }
}